from base import *
from sqlalchemy.orm import relationship, backref
from sqlalchemy import ForeignKey, Sequence

class Relacion(Base):
    """
    Clase que crea la tabla Relacion 
    """
    __tablename__ = 'relacion'
    idorigen      = Column(Integer, ForeignKey('item.id'), primary_key=True)
    iddestino     = Column(Integer, ForeignKey('item.id'), primary_key=True)
    vorigen       = Column(Integer, nullable=False, primary_key=True)
    vdestino      = Column(Integer, nullable=False, primary_key=True)
    tipo          = Column(Text, nullable=False)
    estado        = Column(Text, nullable=False)

    def __init__(self, idorigen, iddestino, vorigen, vdestino, tipo, estado):
        """
        Metodo de instancia constructor que inicializa los parametros del objeto relacion.
        @type self: relacion
        @param self: referencia al objeto que llama el metodo en este caso relacion.
        @type idorigen: Integer
        @param idorigen: campo que almacenara el identificador del item de origen.
        @type iddestino: Integer
        @param iddestino: campo que almacenara el identificador del item de destino.
        @type vorigen: Integer
        @param vorigen: campo que almacenara la version del item de origen.
        @type vdestino: Integer
        @param vdestino: campo que almacenara la version del item de destino.
        @type tipo: Text
        @param tipo: campo que indica el tipo de relacion.
        """
        self.idorigen = idorigen
        self.iddestino = iddestino
        self.vorigen = vorigen
        self.vdestino = vdestino
        self.tipo = tipo
        self.estado = estado
    
    def eliminar_dependencias(self):
        """
        Metodo de instancia que elimina todas los relaciones de un registro de la tabla Relacion
        para que pueda ser eliminado.
        @type self: Relacion
        @param self: referencia al objeto que llama el metodo en este caso relacion.
        """
        # TODO : Implementar
        pass
